﻿#define _CRT_SECURE_NO_WARNINGS 1

#include "SList.h"
#include "Contact.h"

void menu()
{
	printf("*************************通讯录************************\n");
	printf("**************1.增加联系人    2.删除联系人*************\n");
	printf("**************3.修改联系人    4.查找联系人*************\n");
	printf("**************5.展示联系人    6.清空通讯录*************\n");
	printf("**************        0.退出通讯录        *************\n");
	printf("*******************************************************\n");
}
int main()
{
	// 初始化通讯录（从文件加载数据）
	Contact* con = NULL;
	InitContact(&con);

	int output = 0;
	do
	{
		menu();
		printf("请选择:");
		scanf("%d", &output);
		switch (output)
		{
		case 1:
			AddContact(&con);
			break;
		case 2:
			DelContact(&con);
			break;
		case 3:
			ModifyContact(&con);
			break;
		case 4:
			FindContact(con);
			break;
		case 5:
			ShowContact(con);
			break;
		case 6:
			printf("确定要清空通讯录吗？(yes/no)");
			char c[20];
			scanf("%s", c);
			if (strcmp(c,"yes") == 0)
			{
				//销毁当前通讯录
				DestroyContact(&con);

				//清空文件内容
				FILE* pf = fopen("Contact.txt", "wb");
				if (pf)
				{
					fclose(pf);
					pf = NULL;
					printf("通讯录已清空!\n");
				}
				//重新初始化空通讯录
				InitContact(&con);
			}
			else
			{
				printf("已取消清空操作\n");
			}
			break;
		case 0:
			DestroyContact(&con);
			printf("正在保存数据并退出通讯录...\n");
			printf("退出成功!\n");
			break;
		default:
			printf("无效的选择，请重新输入!\n");
			break;
		}
	} while (output);

	return 0;
}